A processor, such as, for example, a central processing unit (CPU), microprocessor, or digital signal processor among others, is the part of an electronic device that provides logic and computation functions by interpreting and executing instructions that are typically stored in memory either within the processor or memory external to the processor. Processors are integrated into many different types of devices because of their flexibility and ability to provide a computational power and logic for many different types of electronic devices, such as computers, televisions, VCRs, cellular phones, CD players, remote controls, communication switches, base stations, and numerous other electronic devices that benefit from intelligence provided by a processor.
The processor is often considered the “heart” of a system by supplying intelligence via interaction with the circuitry with which it interfaces. This circuitry is often called peripheral circuitry. The peripheral circuitry is typically designed by the makers of different types of electronic devices. The peripheral circuitry must operate within the processor constraints, such as various busses protocols, timing, clock speed, and temperature, in order for the electronic device to be a successful product.
Because it is desirable to test the desired circuitry in an environment that provides helpful feedback to the designer, processor emulators are often utilized. Processor emulators mimic or imitate the processor's functionality, including all operations, as exactly as possible. These emulators often provide the user with the ability to stop the processor at a given clock cycle and read the processor's internal registers. In addition, emulators imitate the operational cycles of the processor. For example, when a processor utilizes a RISC (Reduced Instruction Set Computing) architecture, the processor alternates between the various operations that it provides, often leaving an operation before it is completed in order to perform another task prior to returning to the incomplete operation. In normal operation, such activity is not a problem because the speed of the processor is so fast that such interruptions are not noticeable to the user. When trying to debug a test circuit, however, such interruptions may delay the ability to test a particular operation because of the need to wait for the processor or its emulator to cycle back to a particular operation. It may not be predictable when the processor or emulator will return to a particular operation, making debugging with such a processor or its emulator very difficult. Existing emulators also do not provide the ability to select the processor operation to be tested.
Accordingly, there is a need for a processor emulator that efficiently tests processor operations even when the processor utilizes an interrupted or cyclic engagement of operations.